"""
======================
Author: 柠檬班-小简
Time: 2022/11/2 20:10
Project: day8_framwork_V5
Company: 湖南零檬信息技术有限公司
======================
"""
import time
from uuid import uuid4
from faker import Faker

from tools.my_mysql import HandleMySql
from setttings import shop_mysql
from tools.global_data import Data

# 指定的函数名对外开放
__all__ = ["cur_time", "random_str", "get_uuid4", "gen_new_phone"]
fk = Faker("zh_CN")

def cur_time():
    """
    生成13位时间戳
    :return: 整数
    """
    return int(time.time() * 1000)


def random_str(min=15, max=20):
    """
    生成随机字符串。默认的是最少15位，最多20位。
    :param min: 字符串的最小长度
    :param max: 字符串的最大长度
    :return: 字符串。
    """
    return fk.pystr(min,max)


def get_uuid4():
    uuid_value = uuid4()
    setattr(Data,"uuid_value",str(uuid_value))
    return uuid_value


def md5():
    pass

def base64encode():
    pass


def gen_new_phone():
    # 判断在数据库里面有没有
    hmysql = HandleMySql(**shop_mysql)
    while True:
        # 生成新的手机号码，同时设置为全局变量。全局变量名：new_phone
        new_phone = fk.phone_number()
        count = hmysql.get_query_result_count(f'SELECT * FROM tz_user WHERE user_mobile="{new_phone}"')
        if count == 0:
            # 设置成全局变量，给其它接口去使用这个新的手机号码。
            setattr(Data,"new_phone", str(new_phone))
            # 关闭数据库连接
            hmysql.close_db()
            return new_phone


if __name__ == '__main__':
    res = gen_new_phone()
    print(res)